package destiny.神煞;

import destiny.干.天干;
import destiny.支.地支;
import destiny.预测.干支数;
import destiny.预测.支数;

public class 天乙贵人 extends 用神煞 {
	protected 天乙贵人() {
		message = "主聪明、智慧、近贵，是逢凶化吉之神。喜逢合化为用神或所喜之十神，忌刑冲克害衰病死绝。旺者，主福贵增厚，一生少病灾；弱者反之或减福贵。";
	}

	@Override
	public String getName() {
		return "天乙贵人";
	}

	@Override
	protected void 神煞(干支数[] 柱数, int 年序, int 月序, int 日序) {
		天干 年干 = 柱数[年序].干数().天干(), 日主 = 柱数[日序].干数().天干();
		for (int i = 0; i < 柱数.length; ++i) {
			支数 支数 = 柱数[i].支数();
			地支 支 = 支数.地支();

			if (天干.甲.equals(年干) || 天干.戊.equals(年干)) {
				if (地支.丑.equals(支) || 地支.未.equals(支))
					支数.神煞().add(new 神煞(this, true, 年序));
			} else if (天干.乙.equals(年干) || 天干.己.equals(年干)) {
				if (地支.子.equals(支) || 地支.申.equals(支))
					支数.神煞().add(new 神煞(this, true, 年序));
			} else if (天干.丙.equals(年干) || 天干.丁.equals(年干)) {
				if (地支.亥.equals(支) || 地支.酉.equals(支))
					支数.神煞().add(new 神煞(this, true, 年序));
			} else if (天干.庚.equals(年干) || 天干.辛.equals(年干)) {
				if (地支.寅.equals(支) || 地支.午.equals(支))
					支数.神煞().add(new 神煞(this, true, 年序));
			} else if (天干.壬.equals(年干) || 天干.癸.equals(年干)) {
				if (地支.卯.equals(支) || 地支.巳.equals(支))
					支数.神煞().add(new 神煞(this, true, 年序));
			}

			if (天干.甲.equals(日主) || 天干.戊.equals(日主)) {
				if (地支.丑.equals(支) || 地支.未.equals(支))
					支数.神煞().add(new 神煞(this, true, 日序));
			} else if (天干.乙.equals(日主) || 天干.己.equals(日主)) {
				if (地支.子.equals(支) || 地支.申.equals(支))
					支数.神煞().add(new 神煞(this, true, 日序));
			} else if (天干.丙.equals(日主) || 天干.丁.equals(日主)) {
				if (地支.亥.equals(支) || 地支.酉.equals(支))
					支数.神煞().add(new 神煞(this, true, 日序));
			} else if (天干.庚.equals(日主) || 天干.辛.equals(日主)) {
				if (地支.寅.equals(支) || 地支.午.equals(支))
					支数.神煞().add(new 神煞(this, true, 日序));
			} else if (天干.壬.equals(日主) || 天干.癸.equals(日主)) {
				if (地支.卯.equals(支) || 地支.巳.equals(支))
					支数.神煞().add(new 神煞(this, true, 日序));
			}
		}
	}
}
